草庐IT

MySQL WHERE 子句

全部标签

php - Laravel5 Eloquent 从带有 where 子句的多个表中选择

如何在LaravelEloquent中执行此查询?SELECT*FROM`ftm_users`,`ftm_students`,`ftm_user_verification`WHERE`ftm_users`.`user_group`=3AND`ftm_user_verification`.`verification_status`=1AND`ftm_users`.`uid`=`ftm_students`.`uid`AND`ftm_users`.`uid`=`ftm_user_verification`.`uid`我已经在模型中设置了关系,我已经尝试过$userStudent=User::

mysql - 在mysql中使用order by子句按字母顺序对小写字母和大写字母的字符串进行排序

我正在使用mySQL和排序规则utf8mb4_general_ci。我尝试了以下查询:SELECTcid,cnamefromcust1orderbycnamedesc结果是:cidcname3bbb1abc2ABC上面的排序规则是否设置了这种排序方式(小写字母从大到小)?此外,如果我运行以下查询:SELECTcid,cnamefromcust1orderbycname结果是:cidcname1abc2ABC3bbb再次以升序排列,小写字母排在第一位。我不明白这一点。请给我解释一下。如何更改数据库排序规则? 最佳答案 MySQL正在输

mysql - 将内部连接和 where 子句添加到 INSERT INTO ON DUPLICATE KEY UPDATE

我从这个INSERTINTOONDUPLICATEKEYUPDATEMySQL语句开始。INSERTINTOTable1(field1,field2)VALUES(1,2)ONDUPLICATEKEYUPDATEfield1=1,field2=2然后,我遇到了“外键约束失败”的错误。我意识到我需要添加另一个WHERE子句条件来满足具有内部连接的外键约束。我试过这样的;INSERTINTOTable1(field1,field2)InnerJoinTable2ONTable2.id=Table1.field_idVALUES(1,2)ONDUPLICATEKEYUPDATEfield1=

php - Codeigniter 数据库查询子句不起作用

我构建了一个查询:publicfunctiongetContacts($limit,$start,$search){$this->db->limit($limit,$start);if(!empty($search)){$this->db->like('name',$search);$this->db->or_like('last_name',$search);$this->db->or_like('phone_number',$search);$this->db->or_like('created_at',$search);$this->db->or_like('note',$sea

mysql - MySQL 如何决定在 group by 子句中返回哪个 id?

比如这个:SELECTid,count(*),公司来自工作按公司分组其中id是jobs的主键 最佳答案 类似问题:WhydoesMySQLallow"groupby"queriesWITHOUTaggregatefunctions?这是MySQL特有的,不是ANSI标准SQL。大多数其他数据库引擎不允许未分组或未通过聚合函数运行的列。MySQL似乎保留了符合条件的第一行的值。具有此行为的聚合函数是FIRST(),尽管MySQL实现了它,但这似乎是未分组且未通过任何其他聚合函数运行的列的默认行为。在ANSI标准SQL中,你会这样做:S

mysql - MySQL 是否会短路 ORDER BY 子句?

给定这个SQL:SELECT*FROMmytableORDERBYmycolumn,RAND()假设mycolumn恰好只包含唯一值(因此包含足够的信息来执行ORDERBY),MySQL是否会短路操作并跳过评估剩下的呢? 最佳答案 我想这就是答案。Mysql使用不同的计划,不能执行惰性评估(o“短路”)。mysql>explainselect*fromavatarorderbyid;+----+-------------+--------+-------+---------------+---------+---------+---

mysql - 使用 UNION 在 VIEW 内级联 WHERE 子句

这没有解决,但我找到了原因:MySQLViewcontainingUNIONdoesnotoptimizewell...InotherwordsSLOW!原帖:我正在使用游戏的数据库。有两个相同的表equipment和safety_dep_box。要检查玩家是否有一件设备,我想检查两个表。我不想做两个查询,而是想利用MySQL中的UNION功能。我最近了解到我可以创建一个View。这是我的观点:CREATEVIEWvAllEquipASSELECT*FROMequipmentUNIONSELECT*FROMsafety_dep_box;View创建得很好。但是当我运行时SELECT*F

mysql - 如何使用两个 where 子句优化 SQL 查询?

我的查询是这样的SELECT*FROMtbl1JOINtbl2ONsomething=somethingWHERE1AND(tbl2.date='$date'OR('$date'BETWEENtbl1.planAANDtbl1.planB))当我运行这个查询时,它比这个查询慢得多SELECT*FROMtbl1JOINtbl2ONsomething=somethingWHERE1AND('$date'BETWEENtbl1.planAANDtbl1.planB)或SELECT*FROMtbl1JOINtbl2ONsomething=somethingWHERE1ANDtbl2.date=

mysql - 如何消除 GROUP BY 中使用的 SELECT 子句标签的歧义?

我有一个问题:SELECT...(someexpression)ASCountryFROMSometable...GROUPBYCountry;Sometable有一个名为Country的列(无法更改)。其中一个结果列名为Country(也不能更改)。它有效(我希望GROUPBY应用于结果列,这也是MySQL理解它的方式)。但它发出警告:Warning:Column'Country'ingroupstatementisambiguous所以,我想消除GROUPBY的歧义。但我能找到的唯一限定符是指定数据库或表(如:Sometable.Country)。如果标签用于两个不同的表,或者如果

MySQL:开始日期和结束日期之间的日期的 IN 子句?

我有格式为YYYY-MM的日期列表,我有一个包含starts_at和ends_at列的记录的表格.我想查找传入列表中任何给定日期在starts_at和ends_at范围内的所有记录。因此,给定2011-01、2011-05、2011-10,我想要:|id|starts_at|ends_at|title||3|2010-12-0500:00:00|2011-02-0200:00:00|somethingcool||4|2011-03-1400:00:00|2011-05-0100:00:00|somethingelsereallycool||5|2011-10-3100:00:00|20